home *** CD-ROM | disk | FTP | other *** search
/ Univers Mac Interactif 52 / Univers Mac Interactif - Issue 52.iso / JOURNAUX / csmp-digest-v3-113 next >
Text File  |  1995-11-13  |  64KB  |  1,608 lines

  1. C.S.M.P. Digest             Mon, 25 Sep 95       Volume 3 : Issue 113
  2.  
  3. Today's Topics:
  4.  
  5.         Deselecting Edit Text Items in Modeless Dialog
  6.         Durnit... mouseMoved events...
  7.         Mac Game Gurus: Need For Errata
  8.         Mac Game Programming Gurus Book
  9.         Mac Help Systems
  10.         Programming MacTCP and Other Forms of Masochism
  11.         Using two different fonts in a dialog box?
  12.  
  13.  
  14.  
  15. The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
  16. (pottier@clipper.ens.fr).
  17.  
  18. The digest is a collection of article threads from the internet newsgroups
  19. comp.sys.mac.programmer.help, csmp.tools and csmp.misc. It is designed for
  20. people who read news semi-regularly and want an archive of the discussions.
  21. If you don't know what a newsgroup is, you probably don't have access to
  22. it. Ask your systems administrator(s) for details. If you don't have access
  23. to news, you may still be able to post messages to the group by using a
  24. mail server like anon.penet.fi (mail help@anon.penet.fi for more
  25. information).
  26.  
  27. Each issue of the digest contains one or more sets of articles (called
  28. threads), with each set corresponding to a 'discussion' of a particular
  29. subject.  The articles are not edited; all articles included in this digest
  30. are in their original posted form (as received by our news server at
  31. nef.ens.fr).  Article threads are not added to the digest until the last
  32. article added to the thread is at least two weeks old (this is to ensure that
  33. the thread is dead before adding it to the digest).  Article threads that
  34. consist of only one message are generally not included in the digest.
  35.  
  36. The digest is officially distributed by two means, by email and ftp.
  37.  
  38. If you want to receive the digest by mail, send email to listserv@ens.fr
  39. with no subject and one of the following commands as body:
  40.     help                                Sends you a summary of commands
  41.     subscribe csmp-digest Your Name     Adds you to the mailing list
  42.     signoff csmp-digest                 Removes you from the list
  43. Once you have subscribed, you will automatically receive each new
  44. issue as it is created.
  45.  
  46. The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
  47. Questions related to the ftp site should be directed to
  48. scott.silver@dartmouth.edu.
  49.  
  50. -------------------------------------------------------
  51.  
  52. >From DaveZ@mailbag.com (David B. Zwiefelhofer)
  53. Subject: Deselecting Edit Text Items in Modeless Dialog
  54. Date: Mon, 04 Sep 1995 11:07:59 -0500
  55. Organization: Berbee Information Networks Corporation
  56.  
  57. My modeless dialog has a list item as well as several edit text items. As
  58. the user tabs from one edit text item to the next I select the text of the
  59. target item using SelectDialogItemText, e.g. SelectDialogItemText(theDlg,
  60. kRateEditText, 0, 32767). The previous field's text is automatically
  61. deselected.
  62.  
  63. My problem is that when the next item to be selected is the list item, as
  64. opposed to another text edit item, the last text edit item is not
  65. automatically deselected. How do I manually deselect it?
  66.  
  67. I can think of a few skanky ways of doing it, but I'd prefer to use the
  68. proper method. I have tried SelectDialogItemText(theDlg, kRateEditText, 1,
  69. 0), but this just ends up placing the blinking caret at 0. 
  70.  
  71. Any ideas?
  72.  
  73. Thanks,
  74.  
  75. Dave
  76.  
  77. +++++++++++++++++++++++++++
  78.  
  79. >From dazuma@cco.caltech.edu (Daniel Azuma)
  80. Date: Mon, 04 Sep 1995 17:08:27 -0700
  81. Organization: California Institute of Technology, Pasadena
  82.  
  83. DaveZ@mailbag.com (David B. Zwiefelhofer) wrote:
  84.  
  85. > My modeless dialog has a list item as well as several edit text items. As
  86. > the user tabs from one edit text item to the next I select the text of the
  87. > target item using SelectDialogItemText, e.g. SelectDialogItemText(theDlg,
  88. > kRateEditText, 0, 32767). The previous field's text is automatically
  89. > deselected.
  90. > My problem is that when the next item to be selected is the list item, as
  91. > opposed to another text edit item, the last text edit item is not
  92. > automatically deselected. How do I manually deselect it?
  93.  
  94. I think the accepted way to handle such a case is to include an editText
  95. dialog item positioned outside the bounds of the window (so it's not
  96. visible). When you switch the selection to a non-text item (such as a
  97. list), use SelectDialogItemText to set the "selection" to it. This will
  98. effectively hide the caret and "disable" typing, as far as the user can
  99. see.
  100.  
  101. Yes, it may appear to be "skanky", but I think it's generally accepted as
  102. a good method. A similar trick is commonly used to implement password
  103. dialogs.
  104.  
  105. Good luck,
  106. Dan
  107.  
  108.                                                                 +-+
  109. ================================================================| |=======
  110.  \ _____ Daniel Azuma _____ \ "See what love the Father has  +--+ +--+  /
  111.   \ <dazuma@cco.caltech.edu> \  given us, that we should be  +--+ +--+ /
  112.    \    Caltech CS Student    \  called children of God..."     | |   /
  113.     \  Mac Programming Artist  \            ---1 John 3:1       | |  /
  114.     ============================================================| |===
  115.                                                                 | |
  116.                                                                 +-+
  117.  
  118. +++++++++++++++++++++++++++
  119.  
  120. >From bb@lightside.com (Bob Bradley)
  121. Date: Mon, 04 Sep 1995 18:02:13 -0700
  122. Organization: SPC
  123.  
  124. In article <DaveZ-0409951107590001@msn_2_13.binc.net>, DaveZ@mailbag.com
  125. (David B. Zwiefelhofer) wrote:
  126.  
  127. >My problem is that when the next item to be selected is the list item, as
  128. >opposed to another text edit item, the last text edit item is not
  129. >automatically deselected. How do I manually deselect it?
  130.  
  131. I had the exact same problem. The way I got around it was to process the
  132. tab without letting the Dialog Manager do it.
  133.  
  134. When you detect a tab, find the next item (or previous item if shift key
  135. is down) you want to tab to by stepping thru each item starting at the
  136. current item + 1 (or current item - 1 if shift key is down), and check if
  137. it's an item you can tab to (it's one your list items, it's an enabled
  138. editText item, etc...).
  139.  
  140. Once you've figured out which item you want to tab to, determine if you
  141. need to disable the editText items. If an editText item is currently
  142. active and you're tabbing to a list item, you'll want to disable the
  143. editText field and vice versa.
  144.  
  145. What I did to disable the editText item (really all editText items since
  146. they all use the same TextEdit record) was to first set the selection to
  147. zero (use SelectDialogItemText) then call TEDeactivate on the TEHandle
  148. associated with the dialog (use dialog->textH), then set the dialog's
  149. editField field to -1 (not sure if you have to do the last step but, just
  150. in case).
  151.  
  152. When you're tabbing from a list item to an editText item, you just have to
  153. call TEActivate on the dialog's textH field and call SelectDialogItemText
  154. to select all the text in the item.
  155.  
  156. You also have to add a check in your activateEvt handler that checks if a
  157. non-editText item is active and if it is, you have to do the same
  158. de-activating stuff you did when you first de-activated the editText items
  159. since when you get an activateEvt, DialogSelect re-activates the dialog's
  160. editText fields and screws up all your de-activated stuff.
  161.  
  162. When a non-editText item is active (ie. your list) you also have to make
  163. sure you don't pass any keys to DialogSelect. It will think you're trying
  164. to type in the editText item and display the characters.
  165.  
  166. You also have to do the same stuff when you detect clicks in your list or
  167. editText items.
  168.  
  169. I'm not sure if this is the best way to do all this but, it works. I wrote
  170. some routines to simplify this so if you want them, leave me mail.
  171.  
  172. +++++++++++++++++++++++++++
  173.  
  174. >From Patrick.Stadelmann@etudiants.unine.ch (Patrick Stadelmann)
  175. Date: Thu, 07 Sep 1995 11:20:16 +0100
  176. Organization: University of Neuchatel
  177.  
  178. In article <DaveZ-0409951107590001@msn_2_13.binc.net>, DaveZ@mailbag.com
  179. (David B. Zwiefelhofer) wrote:
  180.  
  181. > My modeless dialog has a list item as well as several edit text items. As
  182. > the user tabs from one edit text item to the next I select the text of the
  183. > target item using SelectDialogItemText, e.g. SelectDialogItemText(theDlg,
  184. > kRateEditText, 0, 32767). The previous field's text is automatically
  185. > deselected.
  186. > My problem is that when the next item to be selected is the list item, as
  187. > opposed to another text edit item, the last text edit item is not
  188. > automatically deselected. How do I manually deselect it?
  189. > I can think of a few skanky ways of doing it, but I'd prefer to use the
  190. > proper method. I have tried SelectDialogItemText(theDlg, kRateEditText, 1,
  191. > 0), but this just ends up placing the blinking caret at 0. 
  192.  
  193. I think SelectDialogItemText(theDlg, kRateEditText, 0, 0) will do the job...
  194.  
  195. Patrick
  196.  
  197. -- 
  198. Patrick Stadelmann <Patrick.Stadelmann@etudiants.unine.ch>
  199.  
  200. +++++++++++++++++++++++++++
  201.  
  202. >From DaveZ@mailbag.com (David B. Zwiefelhofer)
  203. Date: Fri, 08 Sep 1995 07:58:26 -0500
  204. Organization: Utility Reduction Specialists, Inc.
  205.  
  206. In article <Patrick.Stadelmann-0709951120160001@mac03-131.unine.ch>,
  207. Patrick.Stadelmann@etudiants.unine.ch (Patrick Stadelmann) wrote:
  208.  
  209. > In article <DaveZ-0409951107590001@msn_2_13.binc.net>, DaveZ@mailbag.com
  210. > (David B. Zwiefelhofer) wrote:
  211. > > My problem is that when the next item to be selected is the list item, as
  212. > > opposed to another text edit item, the last text edit item is not
  213. > > automatically deselected. How do I manually deselect it?
  214. > > 
  215. > I think SelectDialogItemText(theDlg, kRateEditText, 0, 0) will do the job...
  216.  
  217. Actually, it doesn't. It just leaves a blinking caret in position 0. I had
  218. to get the TEHandle of the dialog and teDeactivate it.
  219.  
  220. Dave
  221.  
  222. -- 
  223. David B. Zwiefelhofer
  224. Utility Reduction Specialists, Inc.
  225. 1605 Monroe Street, Suite 110
  226. Madison, WI  53211-2052
  227. (608) 258-8965
  228. (608) 258-9686 FAX
  229.  
  230. ---------------------------
  231.  
  232. >From dazuma@cco.caltech.edu (Daniel Azuma)
  233. Subject: Durnit... mouseMoved events...
  234. Date: Tue, 05 Sep 1995 16:23:30 -0700
  235. Organization: California Institute of Technology, Pasadena
  236.  
  237. Okay, who's experienced in working with mouse regions and mouseMoved events?
  238.  
  239. Both IM and Toolbox Assistant say that if you pass an empty region as the
  240. mouseRgn to WaitNextEvent(), it will not report mouseMoved events. But, it
  241. seems like it reports mouseMoved events anyway. I just performed a small
  242. test to confirm that: in System 7.5.1, calling SetEmptyRgn() on a known
  243. good RgnHandle just before passing it to WaitNextEvent() generates
  244. mouseMoved events left and right.
  245.  
  246. Am I dreaming? Or is this a known inaccuracy in the documentation? Are
  247. there any other inaccuracies I should be aware of as I try to get
  248. mouseMoved events to cooperate with me?
  249.  
  250. Email responses preferred.
  251.  
  252. Thanks.
  253.  
  254. Dan
  255.  
  256.                                                                 +-+
  257. ================================================================| |=======
  258.  \ _____ Daniel Azuma _____ \ "See what love the Father has  +--+ +--+  /
  259.   \ <dazuma@cco.caltech.edu> \  given us, that we should be  +--+ +--+ /
  260.    \    Caltech CS Student    \  called children of God..."     | |   /
  261.     \  Mac Programming Artist  \            ---1 John 3:1       | |  /
  262.     ============================================================| |===
  263.                                                                 | |
  264.                                                                 +-+
  265.  
  266. +++++++++++++++++++++++++++
  267.  
  268. >From Carl R. Osterwald <carl_osterwald@nrel.gov>
  269. Date: 6 Sep 1995 15:35:31 GMT
  270. Organization: National Renewable Energy Laboratory
  271.  
  272. In article <dazuma-0509951623300001@bstafford3.atg.apple.com> Daniel
  273. Azuma, dazuma@cco.caltech.edu writes:
  274.  
  275. >Both IM and Toolbox Assistant say that if you pass an empty region as the
  276. >mouseRgn to WaitNextEvent(), it will not report mouseMoved events. But, it
  277. >seems like it reports mouseMoved events anyway.
  278.  
  279. If you don't care about mouseMoved events, just use nil for the
  280. mouseRgn. I don't know about using an empty region, I've always passed
  281. either a real region or nil.
  282.  
  283. +++++++++++++++++++++++++++
  284.  
  285. >From ldo@waikato.ac.nz (Lawrence D'Oliveiro)
  286. Date: Thu, 07 Sep 1995 16:49:20 +1200
  287. Organization: University of Waikato
  288.  
  289. In article <42kf43$271@nrel.nrel.gov>, Carl R. Osterwald
  290. <carl_osterwald@nrel.gov> wrote:
  291.  
  292. >In article <dazuma-0509951623300001@bstafford3.atg.apple.com> Daniel
  293. >Azuma, dazuma@cco.caltech.edu writes:
  294. >
  295. >>Both IM and Toolbox Assistant say that if you pass an empty region as the
  296. >>mouseRgn to WaitNextEvent(), it will not report mouseMoved events. But, it
  297. >>seems like it reports mouseMoved events anyway.
  298. >
  299. >If you don't care about mouseMoved events, just use nil for the
  300. >mouseRgn. I don't know about using an empty region, I've always passed
  301. >either a real region or nil.
  302.  
  303. Yup, I've noticed this behaviour, too. Empty region => mouse is never
  304. within => continual mouse-moved events.
  305.  
  306. In any case, I think I'm moving away from mouse-moved events. I can't find
  307. a use for them in my application framework any more, once I added support
  308. for things like help balloons...
  309.  
  310. +++++++++++++++++++++++++++
  311.  
  312. >From dazuma@cco.caltech.edu (Daniel Azuma)
  313. Date: Fri, 08 Sep 1995 09:52:40 -0700
  314. Organization: California Institute of Technology, Pasadena
  315.  
  316. Carl R. Osterwald <carl_osterwald@nrel.gov> wrote:
  317.  
  318. > >Both IM and Toolbox Assistant say that if you pass an empty region as the
  319. > >mouseRgn to WaitNextEvent(), it will not report mouseMoved events. But, it
  320. > >seems like it reports mouseMoved events anyway.
  321. > If you don't care about mouseMoved events, just use nil for the
  322. > mouseRgn. I don't know about using an empty region, I've always passed
  323. > either a real region or nil.
  324.  
  325. Just to clarify things...
  326.  
  327. I did finally get mouseMoved events to work.
  328.  
  329. Yes, I know I can pass NIL and not receive them at all, and that's what
  330. I've been doing until now. But in a current project, I need to receive
  331. mouseMoved events at certain times, and not receive them at other times.
  332. Because of this, I was trying to simply SetEmptyRgn() on the region when I
  333. wanted the events turned off, following IM's advice that an empty region
  334. == no events reported. This doesn't work. So yes, now I have a slightly
  335. uglier piece of code that checks to see whether the events should be
  336. reported, and chooses whether to pass the region handle or NIL, and now
  337. things are working fine.
  338.  
  339. I'm not very happy about the documentation inaccuracies. It seems to me
  340. that if they screwed up on something as simple as this, they could screw
  341. up in other, subtler, harder-to-deal-with ways as well.
  342.  
  343. Dan
  344.  
  345.                                                                 +-+
  346. ================================================================| |=======
  347.  \ _____ Daniel Azuma _____ \ "See what love the Father has  +--+ +--+  /
  348.   \ <dazuma@cco.caltech.edu> \  given us, that we should be  +--+ +--+ /
  349.    \    Caltech CS Student    \  called children of God..."     | |   /
  350.     \  Mac Programming Artist  \            ---1 John 3:1       | |  /
  351.     ============================================================| |===
  352.                                                                 | |
  353.                                                                 +-+
  354.  
  355. +++++++++++++++++++++++++++
  356.  
  357. >From ola.berg@digit.se (Ola Berg)
  358. Date: 09 Sep 1995 10:11:17 GMT
  359. Organization: Digit
  360.  
  361. Daniel Azuma (dazuma@cco.caltech.edu) wrote:
  362.  
  363. >Okay, who's experienced in working with mouse regions and mouseMoved events?
  364.  
  365. >Both IM and Toolbox Assistant say that if you pass an empty region as the
  366. >mouseRgn to WaitNextEvent(), it will not report mouseMoved events. But, it
  367. >seems like it reports mouseMoved events anyway.
  368.  
  369. snip!
  370.  
  371. >Email responses preferred.
  372.  
  373. No, no, no! Please answer in this group! I have many times wondered myself.
  374. Neither InsideMac or MacProgrammer Primer explain this thouroughly.
  375.  
  376. What is happening in there??
  377.  
  378. <ixtys><
  379.  
  380. Ola
  381. ola.berg@digit.se
  382.  
  383. +++++++++++++++++++++++++++
  384.  
  385. >From ldo@waikato.ac.nz (Lawrence D'Oliveiro)
  386. Date: Mon, 11 Sep 1995 13:14:28 +1200
  387. Organization: University of Waikato
  388.  
  389. In article <dazuma-0809950952400001@bstafford3.atg.apple.com>,
  390. dazuma@cco.caltech.edu (Daniel Azuma) wrote:
  391.  
  392. >Yes, I know I can pass NIL and not receive them at all, and that's what
  393. >I've been doing until now. But in a current project, I need to receive
  394. >mouseMoved events at certain times, and not receive them at other times.
  395. >Because of this, I was trying to simply SetEmptyRgn() on the region when I
  396. >wanted the events turned off, following IM's advice that an empty region
  397. >== no events reported. This doesn't work. So yes, now I have a slightly
  398. >uglier piece of code that checks to see whether the events should be
  399. >reported, and chooses whether to pass the region handle or NIL, and now
  400. >things are working fine.
  401.  
  402. Try setting the region to one that includes (nearly) every point in the
  403. plane, using a routine like the following:
  404.  
  405.     PROCEDURE SetFullRgn
  406.       (
  407.         TheRgn : RgnHandle
  408.       );
  409.       (* sets TheRgn to include (nearly) every point in the QuickDraw
  410.         coordinate plane. *)
  411.  
  412.     BEGIN
  413.       (* I don't include every point (hence the adjustments by +/-1 below),
  414.         because it might trigger bugs in QuickDraw's region handling
  415.         which are a fundamental consequence of the way regions are defined. *)
  416.         SetRectRgn
  417.           (
  418.             (*rgn :=*) TheRgn,
  419.             (*left :=*) MIN(ShortInt) + 1,
  420.             (*top :=*) MIN(ShortInt) + 1,
  421.             (*right :=*) MAX(ShortInt) - 1,
  422.             (*bottom :=*) MAX(ShortInt)  - 1
  423.           )
  424.     END SetFullRgn;
  425.  
  426. +++++++++++++++++++++++++++
  427.  
  428. >From Mark Williams <Mark@streetly.demon.co.uk>
  429. Date: Sun, 10 Sep 95 08:13:12 GMT
  430. Organization: Streetly Software
  431.  
  432.  
  433. In article <1574105021.12906261@digit.se>, Ola Berg writes:
  434.  
  435. > Daniel Azuma (dazuma@cco.caltech.edu) wrote:
  436. > >Okay, who's experienced in working with mouse regions and mouseMoved events?
  437. > >Both IM and Toolbox Assistant say that if you pass an empty region as the
  438. > >mouseRgn to WaitNextEvent(), it will not report mouseMoved events. But, it
  439. > >seems like it reports mouseMoved events anyway.
  440. > snip!
  441. > >Email responses preferred.
  442. > No, no, no! Please answer in this group! I have many times wondered myself.
  443. > Neither InsideMac or MacProgrammer Primer explain this thouroughly.
  444. > What is happening in there??
  445. The documentation is incorrect.
  446.  
  447. You get a mouse moved event whenever the mouse is not in the mouse region (ie it has nothing to do 
  448. with the mouse actually moving, or leaving the mouse region). For an empty region, the mouse is 
  449. never in the mouse region, so you keep getting mouse moved events.
  450.  
  451. If you dont want mouse moved events, pass 0 or a copy of the grayrgn for the mouse region.
  452.  
  453. - --------------------------------------
  454. Mark Williams<Mark@streetly.demon.co.uk>
  455.  
  456. ---------------------------
  457.  
  458. >From newquist@maxwell.ucdavis.edu (Jason Newquist)
  459. Subject: Mac Game Gurus: Need For Errata
  460. Date: 8 Sep 1995 06:19:48 GMT
  461. Organization: Maxwell at UCD Physics
  462.  
  463. I've heard rumblings that there may be need for errata on the book.  Just 
  464. wondering if any of the many authors think if they're necessary or, more 
  465. to the point I suppose, when they'd be released.
  466.  
  467. Incidentally, it's a fine book.  900 pages -- wow.  And the CD looks 
  468. excellent, too.  I'm happy to support Hayden's effort for this book, and 
  469. am pleased to hear that there may be future Mac game books in the works.
  470.  
  471. Great work.
  472.  
  473. Best regards,
  474. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  475. Jason Newquist                          http://maxwell.ucdavis.edu/~newquist/
  476. newquist@maxwell.ucdavis.edu            eWorld - newquist@eworld.com
  477.  
  478. +++++++++++++++++++++++++++
  479.  
  480. >From mick@emf.net (Mick Foley)
  481. Date: Fri, 08 Sep 1995 00:04:23 -0700
  482. Organization: "emf.net" Quality Internet Access.  (510) 704-2929 (Voice)
  483.  
  484. In article <42ona4$oh3@mark.ucdavis.edu>, newquist@maxwell.ucdavis.edu
  485. (Jason Newquist) wrote:
  486.  
  487. > I've heard rumblings that there may be need for errata on the book.  Just 
  488. > wondering if any of the many authors think if they're necessary or, more 
  489. > to the point I suppose, when they'd be released.
  490. > Incidentally, it's a fine book.  900 pages -- wow.  And the CD looks 
  491. > excellent, too.  I'm happy to support Hayden's effort for this book, and 
  492. > am pleased to hear that there may be future Mac game books in the works.
  493. > Great work.
  494. > Best regards,
  495. > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  496. > Jason Newquist                          http://maxwell.ucdavis.edu/~newquist/
  497. > newquist@maxwell.ucdavis.edu            eWorld - newquist@eworld.com
  498.  
  499. First of all, thanks.
  500.  
  501. I wrote one of the chapters in the book (Advanced Graphics). After it went
  502. to press I found two errors in the code - one in the rect join code and
  503. one in the encoded shape draw for powerPC. As soon as I have time I will
  504. be constructing a home page -- the URL is in the book. I was intending to
  505. have an errata page for my chapter (with code updates) there. I can't
  506. speak for Hayden, but a central errata sheet seems like a good idea to me.
  507.  
  508. Just my thoughts
  509.  
  510. -- Mick Foley
  511.  
  512. ---------------------------
  513.  
  514. >From greenejm@nag.cs.colorado.edu (Jeff Greene)
  515. Subject: Mac Game Programming Gurus Book
  516. Date: Thu, 31 Aug 1995 16:55:22 -0700
  517. Organization: University of Colorado at Boulder
  518.    So far this book has been great, but I was wondering if there was any
  519. way to use the CodeWarrior source code that came with the book and use it
  520. with Symantec C++ v.7.0.4.  I have been able to convert the files to KAHL
  521. type, but when I compile I find errors in some code that CodeWarrior
  522. allowed.  Many of the projects also include library files (MacOS.lib) that
  523. I can't convert or know what form to convert them to.  Am I stuck using
  524. CodeWarrior or can anyone help me with this?  Thanks.  Email me at
  525. greenejm@nag.cs.colorado.edu or post here.
  526.  
  527. -- 
  528. Jeff Greene                 /\                 University of Colorado
  529.                            /  \  /\  /\              at Boulder
  530.                           /    \/  \/  \
  531.                          /      \  /
  532.                       
  533.  
  534. +++++++++++++++++++++++++++
  535.  
  536. >From mick@emf.net (Mick Foley)
  537. Date: Sat, 02 Sep 1995 11:35:08 -0700
  538. Organization: "emf.net" Quality Internet Access.  (510) 704-2929 (Voice)
  539.  
  540. In article <greenejm-3108951655220001@tele-anx0123.colorado.edu>,
  541. greenejm@nag.cs.colorado.edu (Jeff Greene) wrote:
  542.  
  543. >    So far this book has been great, but I was wondering if there was any
  544. > way to use the CodeWarrior source code that came with the book and use it
  545. > with Symantec C++ v.7.0.4.  I have been able to convert the files to KAHL
  546. > type, but when I compile I find errors in some code that CodeWarrior
  547. > allowed.  Many of the projects also include library files (MacOS.lib) that
  548. > I can't convert or know what form to convert them to.  Am I stuck using
  549. > CodeWarrior or can anyone help me with this?  Thanks.  Email me at
  550. > greenejm@nag.cs.colorado.edu or post here.
  551. > -- 
  552. > Jeff Greene                 /\                 University of Colorado
  553. >                            /  \  /\  /\              at Boulder
  554. >                           /    \/  \/  \
  555. >                          /      \  /
  556. >
  557.  
  558. Hey there --
  559.  
  560. Moving between CodeWarrior and Symantec should be possible without too
  561. much pain.To move stuff over, create a new project in Symantec. Add all
  562. the source files and the resource file. Set the prefix to include
  563. MacHeaders. Add the usual Symantec libraries (I forget what they are, look
  564. in Bullseye.π to find out). Try a compile. The errors will fall into two
  565. catagories: compile errors and link errors. The compile errors will caused
  566. by differences in the MacHeaders file (unrecognized system
  567. calls/structures) or diffeences in the compilers (fairly rare). To fix the
  568. header problems, find the missing Trap/Structure in the system headers and
  569. include it at the top of the file. To fix the compiler problems, look at
  570. the settings for the project - particulary pointer rules and integer size.
  571. To fix the linker errors, find the library that has the routines that you
  572. need and add it to the project. Converting files with assembly is harder,
  573. but I don't think any of the code in the book has any. If it does, post
  574. again or mail me and I'll go over it.
  575.  
  576. Enjoy the book --
  577.  
  578. Mick Foley
  579.  
  580. +++++++++++++++++++++++++++
  581.  
  582. >From dbock@us.net (David Bock)
  583. Date: 5 Sep 1995 18:08:44 GMT
  584. Organization: Encephalon
  585.  
  586. In article <greenejm-3108951655220001@tele-anx0123.colorado.edu>,
  587. greenejm@nag.cs.colorado.edu (Jeff Greene) wrote:
  588.  
  589. >    So far this book has been great...
  590.  
  591.  
  592. What is the exact title of the book?  Author?  Publisher?  The title alone
  593. sounds like it would be a book I've been wishing for for a while!
  594.  
  595. -db
  596.  
  597. +++++++++++++++++++++++++++
  598.  
  599. >From mick@emf.net (Mick Foley)
  600. Date: Tue, 05 Sep 1995 19:08:40 -0700
  601. Organization: "emf.net" Quality Internet Access.  (510) 704-2929 (Voice)
  602.  
  603. In article <dbock-0509951418060001@endc7.laurel.us.net>, dbock@us.net
  604. (David Bock) wrote:
  605.  
  606. > In article <greenejm-3108951655220001@tele-anx0123.colorado.edu>,
  607. > greenejm@nag.cs.colorado.edu (Jeff Greene) wrote:
  608. > >    So far this book has been great...
  609. > What is the exact title of the book?  Author?  Publisher?  The title alone
  610. > sounds like it would be a book I've been wishing for for a while!
  611. > -db
  612.  
  613. The book is called "Tricks of the Mac Game Programming Gurus". It is
  614. published by Hayden books. The book was written by many people including:
  615. Jamie McCormick (editor), Ingemar Ragleman (lots of chapters), Steve Hales
  616. (sound), Eric Jonston (porting), Mick Foley (advanced graphics), Jon
  617. Benton (graphics), Stewart Cheshire (networking). There is a CD with all
  618. the source code and other goodies as well. It is out, but many stores
  619. haven't got it in yet. I did see it a Computer Literacy though.
  620.  
  621. Enjoy --
  622.  
  623. Mick Foley
  624.  
  625. +++++++++++++++++++++++++++
  626.  
  627. >From cline@olympus.net (Jay Cline)
  628. Date: 6 Sep 1995 23:54:33 GMT
  629. Organization: cline design
  630.  
  631. In article <dbock-0509951418060001@endc7.laurel.us.net>, dbock@us.net
  632. (David Bock) wrote:
  633.  
  634. > In article <greenejm-3108951655220001@tele-anx0123.colorado.edu>,
  635. > greenejm@nag.cs.colorado.edu (Jeff Greene) wrote:
  636. > >    So far this book has been great...
  637. > What is the exact title of the book?  Author?  Publisher?  The title alone
  638. > sounds like it would be a book I've been wishing for for a while!
  639. > -db
  640. I got a copy from Barnes Nobles book store and hade them ship it to my
  641. house, it sould be in my hands by sat.
  642.  
  643. Hayden has a Web page for it: 
  644. <http://www.mcp.com/hayden/mac_game-gurus>   
  645.  
  646. The ISBN # is  1-56830-183-9
  647.  
  648. +++++++++++++++++++++++++++
  649.  
  650. >From Srdjan Mitrovic <mitrovic@diego.llnl.gov>
  651. Date: 7 Sep 1995 18:03:27 GMT
  652. Organization: LLNL
  653.  
  654. In article <greenejm-3108951655220001@tele-anx0123.colorado.edu> Jeff
  655. Greene, greenejm@nag.cs.colorado.edu writes:
  656. >Mac Game Programming Gurus Book
  657.  
  658. The Hayden Web page says that the book comes with a CD-ROM 
  659. and on the CD-ROM is Metroworks C/C++ Lite. What is the difference
  660. between the Lite version and the full version? 
  661.  
  662.                 Srdjan
  663.                 
  664. mitrovic@blizzard.llnl.gov
  665.  
  666. +++++++++++++++++++++++++++
  667.  
  668. >From gaz@tiac.net (Gus Zeissig)
  669. Date: Thu, 07 Sep 1995 18:45:13 -0400
  670. Organization: OZ Associates
  671.  
  672. In article <42nc5f$nq6@lll-winken.llnl.gov>, Srdjan Mitrovic
  673. <mitrovic@diego.llnl.gov> wrote:
  674.  
  675. > In article <greenejm-3108951655220001@tele-anx0123.colorado.edu> Jeff
  676. > Greene, greenejm@nag.cs.colorado.edu writes:
  677. > >Mac Game Programming Gurus Book
  678. > The Hayden Web page says that the book comes with a CD-ROM 
  679. > and on the CD-ROM is Metroworks C/C++ Lite. What is the difference
  680. > between the Lite version and the full version? 
  681.  
  682. The Lite version will only compile the examples in the CD-ROM, i.e., you
  683. can't create a new project file. However, this does permit a lot of
  684. experimentation. I have the "Secrets of the Mac Game Programming Gurus"
  685. and it is about the most clearly written book on Mac programming I have
  686. read ( so far, I'm only on Chap 5!). I certainly recommend it to anyone
  687. interested in graphics, sound, file manipulation, user interface, etc. on
  688. the Mac. I found a copy at SoftPro in Burlington, MA.
  689.  
  690. Gus Zeissig
  691.  
  692. -- 
  693. No matter where you go, there you are!
  694.  
  695. +++++++++++++++++++++++++++
  696.  
  697. >From pfraser@netcom.com (Pete Fraser)
  698. Date: Fri, 8 Sep 1995 02:25:30 GMT
  699. Organization: very little
  700.  
  701. In article <42nc5f$nq6@lll-winken.llnl.gov>, Srdjan Mitrovic
  702. <mitrovic@diego.llnl.gov> wrote:
  703.  
  704. > In article <greenejm-3108951655220001@tele-anx0123.colorado.edu> Jeff
  705. > Greene, greenejm@nag.cs.colorado.edu writes:
  706. > >Mac Game Programming Gurus Book
  707. > The Hayden Web page says that the book comes with a CD-ROM 
  708. > and on the CD-ROM is Metroworks C/C++ Lite. What is the difference
  709. > between the Lite version and the full version? 
  710. With the lite, you can't start a new project, nor can you add
  711. files to an existing project.
  712.  
  713. -- 
  714. Pete Fraser
  715.  
  716. +++++++++++++++++++++++++++
  717.  
  718. >From rdavis@cybernetics.net (Ron Davis)
  719. Date: Fri, 08 Sep 1995 15:02:43 -0400
  720. Organization: Vnet Internet Access, Charlotte, NC -  info@char.vnet.net
  721.  
  722. In article <42nc5f$nq6@lll-winken.llnl.gov>, Srdjan Mitrovic
  723. <mitrovic@diego.llnl.gov> wrote:
  724. > >Mac Game Programming Gurus Book
  725. > The Hayden Web page says that the book comes with a CD-ROM 
  726. > and on the CD-ROM is Metroworks C/C++ Lite. What is the difference
  727. > between the Lite version and the full version? 
  728.    I've got the book and have mostly just used my regular Codewarrior but
  729. my understanding is the main difference is Lite doesn't allow you to
  730. create new projects.  This allows you to use the sample code on the disk,
  731. but you still need a real version of the program to make new stuff.
  732.  
  733. -- 
  734. Ron Davis   
  735. mailto:rdavis@cybernetics.net
  736. __________________________________________________________________
  737. "I want to know God's thoughts...the rest are details."                        -- Albert Einstein
  738. http://www.cybernetics.net/users/rdavis/home.html
  739. Opinions are MINE - Datawatch doesn't pay me enough to own my opinions.
  740.  
  741. ---------------------------
  742.  
  743. >From loverink@teleport.com (Dave Loverink)
  744. Subject: Mac Help Systems
  745. Date: Tue, 05 Sep 1995 17:08:23 -0800
  746. Organization: Xiphidus Development
  747.  
  748. I'm looking for a help system for use in a commercial product.
  749.  
  750. I have information on EHelp from MultiDoc Technologies.  Are there any
  751. others out there that I should be considering?
  752.  
  753. Thanks in advance,
  754.  
  755. Dave Loverink
  756. loverink@teleport.com
  757.  
  758.  - Dave Loverink
  759.    loverink@teleport.com
  760.    Xiphidus Development, a Macintosh Software Design Studio
  761.  
  762. +++++++++++++++++++++++++++
  763.  
  764. >From dsawyer@edaccess.randomaccess.com (Dave Sawyer)
  765. Date: Wed, 06 Sep 1995 09:13:41 -0600
  766. Organization: Education Access/Random Access, Inc.
  767.  
  768. In article <loverink-0509951708230001@ip-pdx04-31.teleport.com>,
  769. loverink@teleport.com (Dave Loverink) wrote:
  770.  
  771. > I'm looking for a help system for use in a commercial product.
  772. > I have information on EHelp from MultiDoc Technologies.  Are there any
  773. > others out there that I should be considering?
  774.  
  775.  
  776. How about AppleGuide? It's worth considering in my opinion; it's included
  777. with System 7.5 (and will be in all future versions of the MacOS, from
  778. what Apple says, though it will develop even more capabilities), and it
  779. can perform the task for the user as well as provide help. 
  780.  
  781. The authoring kit is available via anonymous ftp from Apple, if you don't
  782. mind a huge download (beware, it's over 12MB):
  783.  
  784. ftp://ftp.info.apple.com/Apple.Support.Area/Developer_Services/System_Software_Extensions/Apple_Guide_Authoring_Kit.sit.hqx
  785.  
  786. Otherwise you can probably get the CD for the AppleGuide Authoring Kit for
  787. a nominal fee. I don't have the ordering number any more, but someone else
  788. may be able to provide it, or you can send an e-mail to
  789. author.guide@applelink.apple.com and they can undoubtedly tell you the
  790. ordering procedure.
  791.  
  792. - --------------------------------------------
  793. Dave Sawyer
  794. Senior Systems Engineer
  795. Education Access/Random Access, Inc. - Denver, Colorado
  796. E-mail: dsawyer@edaccess.randomaccess.com
  797. - --------------------------------------------
  798. "Vex not thy employer by covering thy words with their mantle; 
  799. neither let thy employer assail thee through coveting thy words for 
  800. their mouthes. This is the path to continued gainful and profitable days"
  801.                               - Irving, Chapter 12, Verse 32a, Rev. 1.06
  802. - --------------------------------------------
  803.  
  804. +++++++++++++++++++++++++++
  805.  
  806. >From Jeff Benjamin <stepup@onramp.net>
  807. Date: 6 Sep 1995 17:37:19 GMT
  808. Organization: StepUp Software
  809.  
  810.  
  811. >>I have information on EHelp from MultiDoc Technologies.  Are there any
  812. >>others out there that I should be considering?
  813.  
  814. You should consider Apple's System level active assistance system, Apple 
  815. Guide. See www.guideworks.com for more info.
  816.  
  817.  
  818. - -----------------------------------------------
  819. +                Jeff Benjamin                         
  820. +                StepUp Software                    
  821. +                stepup@onramp.net
  822. +                http://rampages.onramp.net/~stepup/
  823. - -----------------------------------------------
  824.  
  825.  
  826.  
  827. +++++++++++++++++++++++++++
  828.  
  829. >From abboud@ix.netcom.com (Hisham Abboud )
  830. Date: 6 Sep 1995 20:10:02 GMT
  831. Organization: Netcom
  832.  
  833. In <loverink-0509951708230001@ip-pdx04-31.teleport.com>
  834. loverink@teleport.com (Dave Loverink) writes: 
  835. >
  836. >I'm looking for a help system for use in a commercial product.
  837. >
  838. >I have information on EHelp from MultiDoc Technologies.  Are there any
  839. >others out there that I should be considering?
  840.  
  841. I'm also looking for something like EHelp, if available.  A couple
  842. of people suggested AppleGuide, but I suspect that Dave is like
  843. me, looking for a WinHelp-compatible system for the Mac.  With
  844. all due respect to AppleGuide, I personally do not have the time
  845. to re-write the entire help system for the Mac (even though our
  846. application was first written on the Mac then ported to Windoze).
  847.  
  848. Hisham.
  849.  
  850.  
  851. +++++++++++++++++++++++++++
  852.  
  853. >From davis@wln.com (Ryan Davis)
  854. Date: Tue, 05 Sep 1995 22:50:47 -0700
  855. Organization: Zen Spider Software
  856.  
  857. In article <loverink-0509951708230001@ip-pdx04-31.teleport.com>,
  858. loverink@teleport.com (Dave Loverink) wrote:
  859.  
  860. >I'm looking for a help system for use in a commercial product.
  861. >
  862. >I have information on EHelp from MultiDoc Technologies.  Are there any
  863. >others out there that I should be considering?
  864.  
  865. Well, there are two others that I know about... First is Help On Wheels, a
  866. shareware client/server type help system... I haven't used it much, so you
  867. can form your own opinion on it... It is available at sumex/umich I
  868. believe in the developer areas...
  869.  
  870. Second, and I will warn you, I don't like this company, is Datapak's
  871. Online Help Construction Kit... If I were to be brief, I'd just say stay
  872. away... If I were to be moderately long winded I'd mention their terrible
  873. documentation, poor interface (programmer & user), bad examples, and best
  874. of all - very RUDE customer support... If I were to be truely long winded
  875. I'd be rated R, and this is a family show...
  876.  
  877. -- 
  878.   -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  879.    \   davis@wln.com          \ _O_ / ...will code for food... /
  880.     \   Smalltalk, C, & C++    \ | /                          /
  881.      \   Mac, UNIX, & Windows   \ /       Finger for Resume  /
  882.       -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  883.  
  884. +++++++++++++++++++++++++++
  885.  
  886. >From AWOL@eworld.com (Ross Brown)
  887. Date: Thu, 07 Sep 1995 13:22:32 -0400
  888. Organization: AWOL Software Productions
  889.  
  890. In article <davis-0509952250470001@cerberus6.wln.com>, davis@wln.com (Ryan
  891. Davis) wrote:
  892.  
  893. >In article <loverink-0509951708230001@ip-pdx04-31.teleport.com>,
  894. >loverink@teleport.com (Dave Loverink) wrote:
  895. >
  896. >>I'm looking for a help system for use in a commercial product.
  897. >>
  898. >>I have information on EHelp from MultiDoc Technologies.  Are there any
  899. >>others out there that I should be considering?
  900. >
  901. >Well, there are two others that I know about... First is Help On Wheels, a
  902. >shareware client/server type help system... I haven't used it much, so you
  903. >can form your own opinion on it... It is available at sumex/umich I
  904. >believe in the developer areas...
  905.  
  906. Thanks for the mention, Ryan.  Help on Wheels is in fact freeware, based
  907. on the help engine which John Norstad programmed for Disinfectant.  Apart
  908. from being free, it has some real advantages over Apple Guide:
  909.  
  910. 1.  It works with any OS back to 7.0, and doesn't assume the presence of
  911. any extensions.  You can distribute HoW for free with your product.
  912. 2.  Help files can be separate double-clickable documents, or built into
  913. an application, control panel, or extension.  You can read them like a
  914. book, save them as text, or print them.  An Apple Guide database does not
  915. take the place of printed documentation, but a HoW help file certainly
  916. can.
  917. 3.  The API is about as simple as you could want:  register, display,
  918. deregister.  With a little extra work, you can have the help server follow
  919. along in the background, displaying help for each user action in real
  920. time.  A full sample application (source and binary) is included.
  921. 4.  Hypertext support includes callbacks from the help server to the
  922. application, so "do it for me" is not out of the question.
  923.  
  924. The best way to form an opinion on HoW is to pick up the AWOL Utilities
  925. package, and use the on-line help built into each program:
  926.  
  927. <URL:ftp://mirrors.aol.com/pub/info-mac/dev/help-on-wheels-12.hqx>
  928. <URL:ftp://mirrors.aol.com/pub/info-mac/dev/how-developers-kit-12.hqx>
  929. <URL:ftp://mirrors.aol.com/pub/info-mac/gui/virtual-desktop-18.hqx>
  930. <URL:ftp://mirrors.aol.com/pub/info-mac/gui/maybe-14.hqx>
  931. <URL:ftp://mirrors.aol.com/pub/info-mac/grf/util/pict-pocket-12.hqx>
  932. <URL:ftp://mirrors.aol.com/pub/info-mac/dev/menu-events-12.hqx>
  933. <URL:ftp://mirrors.aol.com/pub/info-mac/gui/menu-grabber-12.hqx>
  934.  
  935. -- 
  936. Ross Brown
  937. AWOL Software Productions
  938. AWOL@eworld.com
  939.  
  940. +++++++++++++++++++++++++++
  941.  
  942. >From AviRr@metrowerks.com (Avi Rappoport)
  943. Date: Thu, 07 Sep 1995 11:21:20 -0700
  944. Organization: metrowerks, Inc.
  945.  
  946. In article <davis-0509952250470001@cerberus6.wln.com>, davis@wln.com (Ryan
  947. Davis) wrote:
  948.  
  949. ) In article <loverink-0509951708230001@ip-pdx04-31.teleport.com>,
  950. ) loverink@teleport.com (Dave Loverink) wrote:
  951. ) >I'm looking for a help system for use in a commercial product.
  952. ) >
  953. ) >I have information on EHelp from MultiDoc Technologies.  Are there any
  954. ) >others out there that I should be considering?
  955.  
  956. We are quite happy with QuickView from Altura Systems.  While it's not
  957. perfect, it's a good solution for offering large amounts of data in
  958. searchable hypertext.  Try www.altura.com for more info.
  959.  
  960. -- 
  961. Avi Rappoport
  962. metrowerks User Advocate & Publications Coordinator
  963. AviRr@metrowerks.com             http://www.metrowerks.com/
  964.  
  965. +++++++++++++++++++++++++++
  966.  
  967. >From jordanz@altura.com (Jordan Zimmerman)
  968. Date: Thu, 07 Sep 1995 11:27:37 -0700
  969. Organization: Altura Software, Inc.
  970.  
  971. > >I'm looking for a help system for use in a commercial product.
  972. > >
  973. > >I have information on EHelp from MultiDoc Technologies.  Are there any
  974. > >others out there that I should be considering?
  975.  
  976. Our company, Altura Software, makes QuickHelp which is nearly 100%
  977. compatible with WinHelp. 408-655-8005.
  978.  
  979. -- 
  980. Jordan Zimmerman, Altura Software
  981. home page: http://www.altura.com/jordanz/home.html
  982. Coming to you fast as lightning on a 9500/120!
  983.  
  984. +++++++++++++++++++++++++++
  985.  
  986. >From davis@wln.com (Ryan Davis)
  987. Date: Wed, 06 Sep 1995 23:52:36 -0700
  988. Organization: Zen Spider Software
  989.  
  990. In article <42km8f$b1e@news.onramp.net>, Jeff Benjamin <stepup@onramp.net>
  991. wrote:
  992.  
  993. >>>I have information on EHelp from MultiDoc Technologies.  Are there any
  994. >>>others out there that I should be considering?
  995. >
  996. >You should consider Apple's System level active assistance system, Apple 
  997. >Guide. See www.guideworks.com for more info.
  998.  
  999. Or that... (embarrassed...) I can't believe I didn't mention AppleGuide...
  1000. <sulk>
  1001.  
  1002. -- 
  1003.   -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1004.    \   davis@wln.com          \ _O_ / ...will code for food... /
  1005.     \   Smalltalk, C, & C++    \ | /                          /
  1006.      \   Mac, UNIX, & Windows   \ /       Finger for Resume  /
  1007.       -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1008.  
  1009. +++++++++++++++++++++++++++
  1010.  
  1011. >From Jeff Benjamin <stepup@onramp.net>
  1012. Date: 8 Sep 1995 06:08:25 GMT
  1013. Organization: StepUp Software
  1014.  
  1015. FYI -
  1016.  
  1017. << real advantages over Apple Guide: It works with any OS back to 7.0>>
  1018.  
  1019. Apple Guide 2.0 (due RSN) will work back to 7.0.
  1020.  
  1021. << You can distribute HoW for free with your product.>>
  1022.  
  1023. Guide files are freely distributable. 
  1024.  
  1025. <<Help files can be separate double-clickable documents>>
  1026.  
  1027. There is a utility which turns Guide files into double-clickable apps (however, they do require Apple Guide).
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033. - -----------------------------------------------
  1034. +                Jeff Benjamin                         
  1035. +                StepUp Software                    
  1036. +                stepup@onramp.net
  1037. +                http://rampages.onramp.net/~stepup/
  1038. - -----------------------------------------------
  1039.  
  1040.  
  1041.  
  1042. ---------------------------
  1043.  
  1044. >From edw@icog.com (Ed Watkeys)
  1045. Subject: Programming MacTCP and Other Forms of Masochism
  1046. Date: Sat, 26 Aug 1995 17:46:53 -0400
  1047. Organization: Icognitive Systems, Inc.
  1048.  
  1049. Over the last month or so, I've been struggling to write correct code for
  1050. TCP/IP communications with MacTCP.
  1051.  
  1052. One of the fundamental problems I've faced is finding proper header files.
  1053. Checking seeding.apple.com, I notice that the lastest version of MacTCP.h
  1054. is dated mid-1994. I visit Eric Scouten's useful Mac TCP/IP FAQ and find
  1055. that he has a corrected version. Looking at John Norstad's NewsWatcher
  1056. source, I find another (significantly different) version. Which to use?
  1057.  
  1058. Lest one think that this problem is going away with the imminent release
  1059. of OpenTransport for non-PCI Macs, keep in mind that writing MacTCP-based
  1060. code will be necessary for the next several years, as folks with MacTCP
  1061. slowly upgrade.
  1062.  
  1063. Looking at some of the sample code available on the Internet (notably, the
  1064. NewsWatcher source and PowerTCP), I see coding idioms not documented
  1065. anywhere in Apple documentation (the MacTCP Programmer's Guide or the
  1066. develop 6 article). How is one to know when one's MacTCP code is finished?
  1067. When it stops crashing? Please shoot me now!
  1068.  
  1069. Does anyone know if the TCP/IP PowerPlant classes will materialize on the
  1070. CW7 CD? Is there any 'canonical' MacTCP source code circa 1995? Can
  1071. someone tell me why I can forget about MacTCP forever and begin coding
  1072. exclusively for OpenTransport on Monday?
  1073.  
  1074. Ed
  1075.  
  1076. -- 
  1077. Ed Watkeys
  1078. edw@icog.com
  1079.  
  1080. +++++++++++++++++++++++++++
  1081.  
  1082. >From megawatt@noproblem.uchicago.edu (MegaWatt)
  1083. Date: Sun, 27 Aug 1995 21:34:33 GMT
  1084. Organization: University of Chicago
  1085.  
  1086. In article <edw-2608951746530001@edw.fast.net>, edw@icog.com (Ed Watkeys) wrote:
  1087.  
  1088. > Over the last month or so, I've been struggling to write correct code for
  1089. > TCP/IP communications with MacTCP.
  1090. > One of the fundamental problems I've faced is finding proper header files.
  1091. > Checking seeding.apple.com, I notice that the lastest version of MacTCP.h
  1092. > is dated mid-1994. I visit Eric Scouten's useful Mac TCP/IP FAQ and find
  1093. > that he has a corrected version. Looking at John Norstad's NewsWatcher
  1094. > source, I find another (significantly different) version. Which to use?
  1095. > Lest one think that this problem is going away with the imminent release
  1096. > of OpenTransport for non-PCI Macs, keep in mind that writing MacTCP-based
  1097. > code will be necessary for the next several years, as folks with MacTCP
  1098. > slowly upgrade.
  1099. > Looking at some of the sample code available on the Internet (notably, the
  1100. > NewsWatcher source and PowerTCP), I see coding idioms not documented
  1101. > anywhere in Apple documentation (the MacTCP Programmer's Guide or the
  1102. > develop 6 article). How is one to know when one's MacTCP code is finished?
  1103. > When it stops crashing? Please shoot me now!
  1104. > Does anyone know if the TCP/IP PowerPlant classes will materialize on the
  1105. > CW7 CD? Is there any 'canonical' MacTCP source code circa 1995? Can
  1106. > someone tell me why I can forget about MacTCP forever and begin coding
  1107. > exclusively for OpenTransport on Monday?
  1108. > Ed
  1109. > -- 
  1110. > Ed Watkeys
  1111. > edw@icog.com
  1112.  
  1113. There is hope your you yet. I would try using a pre-made networking
  1114. library if you can. A couple of them exist at the moment that perform
  1115. rather well and I am in the middle of writing one myself to make it even
  1116. easier for people new to programming to TCP/IP. (My approach is unique
  1117. from the existing ones... stay posted for further details in the next
  1118. month or so)     
  1119.  
  1120. If you feel you must write your own, then follow the examples that are out
  1121. there and when you run into a knotty problem, ask some specific questions.
  1122. You'll get by ok. After a little while, most of the coding idioms seem
  1123. aparent.
  1124.  
  1125.  
  1126. P.S.  Yes that was shameless advertising above about my networking class
  1127. library called NetStream (mostly for TCP/IP)... it isn't even in beta
  1128. yet.  (Sounds just like Microsoft)
  1129.  
  1130. +++++++++++++++++++++++++++
  1131.  
  1132. >From ldo@waikato.ac.nz (Lawrence D'Oliveiro)
  1133. Date: Mon, 28 Aug 1995 16:53:48 +1200
  1134. Organization: University of Waikato
  1135.  
  1136. In article <edw-2608951746530001@edw.fast.net>, edw@icog.com (Ed Watkeys) wrote:
  1137.  
  1138. >One of the fundamental problems I've faced is finding proper header files.
  1139. >Checking seeding.apple.com, I notice that the lastest version of MacTCP.h
  1140. >is dated mid-1994. I visit Eric Scouten's useful Mac TCP/IP FAQ and find
  1141. >that he has a corrected version. Looking at John Norstad's NewsWatcher
  1142. >source, I find another (significantly different) version. Which to use?
  1143.  
  1144. I found a reasonably up-to-date version on a recent developer CD (or maybe
  1145. it was the MacOS SDK). In the process of adapting that to Modula-2, I
  1146. found an incorrect pad byte, which I removed. That adaptation has been
  1147. working OK for me so far.
  1148.  
  1149. If someone would like to post the differences between the above
  1150. interfaces, I'm sure we could pick them apart here.
  1151.  
  1152. >Looking at some of the sample code available on the Internet (notably, the
  1153. >NewsWatcher source and PowerTCP), I see coding idioms not documented
  1154. >anywhere in Apple documentation (the MacTCP Programmer's Guide or the
  1155. >develop 6 article). How is one to know when one's MacTCP code is finished?
  1156. >When it stops crashing? Please shoot me now!
  1157.  
  1158. Well, "When it stops crashing" has served me in developing other kinds of
  1159. Mac software before now. :-)
  1160.  
  1161. +++++++++++++++++++++++++++
  1162.  
  1163. >From peter@stairways.com.au (Peter N Lewis)
  1164. Date: Sat, 02 Sep 1995 00:23:22 +0800
  1165. Organization: Stairways Software
  1166.  
  1167. >In article <edw-2608951746530001@edw.fast.net>, edw@icog.com (Ed Watkeys)
  1168. wrote:
  1169. >
  1170. >> Looking at some of the sample code available on the Internet (notably, the
  1171. >> NewsWatcher source and PowerTCP), I see coding idioms not documented
  1172. >> anywhere in Apple documentation (the MacTCP Programmer's Guide or the
  1173. >> develop 6 article). How is one to know when one's MacTCP code is finished?
  1174. >> When it stops crashing? Please shoot me now!
  1175.  
  1176. It's actually fairly easy to avoid MacTCP crashing.  Primary rules:
  1177.  
  1178. You can't abort a DNS lookup.  If one is in progress, then you can let the
  1179. user "cancel" it, but you must allow it to continue until it returns with
  1180. an error or an answer.  Obviously, you cannot quit during this time.
  1181.  
  1182. You can't abort an ICMP ping.  See above.
  1183.  
  1184. For every TCP/UDP connection you successfully Create, you *must* Release
  1185. it exactly once.  This will terminate all async calls on this connection.
  1186.  
  1187. That's pretty much it.  If you avoid doing any of those, it wont crash
  1188. unless you fail similar rules to that which would be used with the file
  1189. system for example (ie, your completion routines may be called before your
  1190. async call returns, your completions routines can't do lots of things, you
  1191. can't release memory while it's in use, or reuse control blocks, etc).
  1192.  
  1193. Enjoy,
  1194.    Peter.
  1195. -- 
  1196. "there is no significant correlation to violence on TV and agression in 
  1197. daily life" - NHR Broadcasting Culture Research Institute in Tokyo.
  1198.  
  1199. +++++++++++++++++++++++++++
  1200.  
  1201. >From crawford@scipp.ucsc.edu (Mike Crawford)
  1202. Date: 5 Sep 1995 19:48:27 GMT
  1203. Organization: UC Santa Cruz - SCIPP
  1204.  
  1205. >>In article <edw-2608951746530001@edw.fast.net>, edw@icog.com (Ed Watkeys)
  1206. >wrote:
  1207. >>> develop 6 article). How is one to know when one's MacTCP code is finished?
  1208. >>> When it stops crashing? Please shoot me now!
  1209.  
  1210. It's been a long time since I worked on MacTCP, so forgive me if I am a little
  1211. vague here.
  1212.  
  1213. When an application starts using MacTCP, the application allocates a buffer
  1214. and passes it into MacTCP, I think in the Open call.
  1215.  
  1216. MacTCP uses that buffer for I/O.  When a packet comes in, it is written into
  1217. the buffer you have allocated.  One advantage of this is that an application
  1218. has some control over its buffering; in principle allocating a bigger buffer
  1219. allows you better performance, or at least prevents having to throttle the
  1220. TCP stream as much.
  1221.  
  1222. The problem is that a common error during development can screw you in a
  1223. really subtle way if you don't know about it.  You must release your TCP
  1224. streams in order for MacTCP to stop using that buffer.  MacTCP knows nothing
  1225. of processes.  It will still use the buffer after your application quits!
  1226.  
  1227. The MacOS knows to close an application's files when the app quits.  On
  1228. Unix, both files and TCP connections are file descriptors that are kept on
  1229. the process data structure in the kernel, so the Unix OS knows to close your
  1230. network connections for you when you quit.  The Mac does not do this when
  1231. you quit.
  1232.  
  1233. What will happen is that the now-invalid region of memory will still be 
  1234. written to and read from MacTCP.  Eventually you will launch another 
  1235. application that uses that same region of memory.  A network packet 
  1236. will arrive, and scrawl garbage over your heap.  You are dead meat.
  1237.  
  1238. For this reason, _never_ call ExitToShell directly from a program that
  1239. uses MacTCP.  Write a wrapper, called, say "MyExitToShell".  MyExitToShell
  1240. will ensure that all the streams have been released and then do an
  1241. ExitToShell.  Keep some record in the structures you use for streams that
  1242. indicates whether the stream has been released.  When you release a stream,
  1243. either mark it shut or release the structure you associate with it, and
  1244. at the exit of your program, MyExitToShell can make sure they are all
  1245. really closed whether you are quitting normally or due to some emergency.
  1246.  
  1247. This also applies if you force-quit or ES an application with Macsbug.  If
  1248. you quit an app, say because the net was hung up, immediately restart
  1249. your Macintosh.
  1250.  
  1251. I tested MacTCP for Apple back in 1990.  We had a lot of trouble with the
  1252. test tool.  One of the problems was that the tool would sometimes abort
  1253. without closing a stream, and the next test run would crash.  This made
  1254. it hard to qualify MacTCP.  Fixing this in the tool really made the
  1255. "test" appear more stable.
  1256.  
  1257.  
  1258. -- 
  1259. Mike Crawford                      One in forty Americans believe that they 
  1260. crawford@scruznet.com              have been abducted by aliens.
  1261. crawford@maxwell.ucsc.edu          <-- Finger Me here for PGP Public Key
  1262. http://www.scruznet.com/~crawford/ (under construction; foundation poured.)
  1263.  
  1264. +++++++++++++++++++++++++++
  1265.  
  1266. >From chris-b@cs.auckland.ac.nz (chris-b)
  1267. Date: Mon, 11 Sep 1995 17:04:37 +1200
  1268. Organization: HyperMedia Unit, Comp Sci, Auckland University
  1269.  
  1270. In article <42i9ib$bfi@darkstar.UCSC.EDU>, crawford@scipp.ucsc.edu (Mike
  1271. Crawford) wrote:
  1272.  
  1273. >The problem is that a common error during development can screw you in a
  1274. >really subtle way if you don't know about it.  You must release your TCP
  1275. >streams in order for MacTCP to stop using that buffer.  MacTCP knows nothing
  1276. >of processes.  It will still use the buffer after your application quits!
  1277. >
  1278. >The MacOS knows to close an application's files when the app quits.  On
  1279. >Unix, both files and TCP connections are file descriptors that are kept on
  1280. >the process data structure in the kernel, so the Unix OS knows to close your
  1281. >network connections for you when you quit.  The Mac does not do this when
  1282. >you quit.
  1283. >
  1284. >What will happen is that the now-invalid region of memory will still be 
  1285. >written to and read from MacTCP.  Eventually you will launch another 
  1286. >application that uses that same region of memory.  A network packet 
  1287. >will arrive, and scrawl garbage over your heap.  You are dead meat.
  1288.  
  1289. For MacTCP developers - get the extension "ZapTCP 1.2". It keeps track of
  1290. streams opened from within an application and aborts & releases them if
  1291. the app crashes.
  1292.  
  1293. Chris B
  1294. - ---------------------------------------------------------------------
  1295. NewZealand:AucklandUniversity:ComputerScience:HyperMediaUnit:ChrisBurns
  1296. Internet: chris-b@cs.auckland.ac.nz
  1297. Phone:    +64 9 373-7599 x6194
  1298. Fax:      +64 9 373-7453                         Async, therefore I am.
  1299. - ---------------------------------------------------------------------
  1300.  
  1301. ---------------------------
  1302.  
  1303. >From winterp@spot.Colorado.EDU (WINTER  PAUL RUDOLPH)
  1304. Subject: Using two different fonts in a dialog box?
  1305. Date: 22 Aug 95 15:08:15 GMT
  1306. Organization: University of Colorado at Boulder
  1307.  
  1308. I would like to open a dialog box with only static text items and a couple
  1309. of buttons (Return and Cancel).  I would like all of the static text items
  1310. to be in the default font but two.  I want these two to be smaller size and
  1311. a different font.  How do I go about changing the font for just these two
  1312. items.  I have been mucking around with calls to GetFontNum and then doing
  1313. a call to TextFont(newfontnum), but all that does is change the font that
  1314. is used in window titles on the desktop.  I have been checking the system
  1315. and application fonts with GetSysFont and GetAppFont both before and after
  1316. my calls to TextFont, but I've noticed no changes in these values from before
  1317. the call to after the call.
  1318.  
  1319.  
  1320. Obviously, I'm overlooking something here, as I have seen programs that do
  1321. this.  Could someone point me in the right direction?  Also, could someone
  1322. explain to me what TextFont is supposed to do?
  1323.  
  1324. Thanks in advance.
  1325.  
  1326. Paul Winter
  1327.  
  1328.  
  1329. +++++++++++++++++++++++++++
  1330.  
  1331. >From Charles B. Cranston <zben@ni.umd.edu>
  1332. Date: 22 Aug 1995 19:40:13 GMT
  1333. Organization: Network Infrastructures UMD CSC
  1334.  
  1335. In article <winterp.809104095@spot.Colorado.EDU>
  1336. WINTER  PAUL RUDOLPH, winterp@spot.Colorado.EDU writes:
  1337.  
  1338. > I would like to open a dialog box with only static text items and a couple
  1339. > of buttons (Return and Cancel).  I would like all of the static text items
  1340. > to be in the default font but two.  I want these two to be smaller size and
  1341. > a different font.
  1342.  
  1343. I guess conceptually the easiest way to do this is to do
  1344. your text drawing from a user item.  That way your callback
  1345. routine gets control every time the dialog is redrawn, and
  1346. you can change fonts and typesizes etc to your heart's content.
  1347.  
  1348. *DONT FORGET TO SAVE AND RESTORE THE PEN STATE*
  1349.  
  1350. Well, maybe that's a little harsh.  But it does look weird if
  1351. you set a thickness-3 pen (like, to make a default OK button)
  1352. and the dialog has more drawing to do!!!  :-)
  1353.  
  1354. +-+-+
  1355. Charles B. (Ben) Cranston <zben@ni.umd.edu>
  1356. http://www.wam.umd.edu/~zben
  1357.  
  1358. +++++++++++++++++++++++++++
  1359.  
  1360. >From larson@base.cs.ucla.edu (Christopher Larson)
  1361. Date: 23 Aug 1995 16:22:48 GMT
  1362. Organization: UCLA, Computer Science Department
  1363.  
  1364. In article <winterp.809104095@spot.Colorado.EDU> winterp@spot.Colorado.EDU (WINTER  PAUL RUDOLPH) writes:
  1365. >I would like to open a dialog box with only static text items and a couple
  1366. >of buttons (Return and Cancel).  I would like all of the static text items
  1367. >to be in the default font but two.  I want these two to be smaller size and
  1368. >a different font.  How do I go about changing the font for just these two
  1369. >items. [ ... ]
  1370.  
  1371. Look into using an 'ictb' resource. I _believe_ it lets you set the font
  1372. for individual dialog items (could be wrong though). They are documented
  1373. in Inside Macintosh: Macintosh Toolbox Essentials.
  1374.  
  1375. --Chris
  1376. _______________________________________________________________________________
  1377. Chris Larson -- Amateur Macintosh Geek, CoBase Research Assistant
  1378. L.A. Institute of Slowly and Painfully Working Out the Surprisingly Obvious
  1379. - -------------------------------------+---------------------------------------
  1380. (Insert Disclaimer Here)               | Who's the man ridin' in the sun?
  1381. UCLA Bruins--1995 NCAA Men's Basketball| Who's the man with the itchy gun?
  1382.              National Champions (yea!) | Who's the man who kills for fun?
  1383. Internet: larson@kingston.cs.ucla.edu  | Psycho Dad, Psycho Dad, PSYCHO DAD!
  1384.  
  1385. +++++++++++++++++++++++++++
  1386.  
  1387. >From scaine@world.std.com (Steve Caine)
  1388. Date: Thu, 24 Aug 1995 02:56:02 GMT
  1389. Organization: The World @ Software Tool & Die
  1390.  
  1391. In article <41fkko$3sn@delphi.cs.ucla.edu>, larson@base.cs.ucla.edu
  1392. (Christopher Larson) wrote:
  1393.  
  1394. > In article <winterp.809104095@spot.Colorado.EDU>
  1395. winterp@spot.Colorado.EDU (WINTER  PAUL RUDOLPH) writes:
  1396. > >I would like to open a dialog box with only static text items and a couple
  1397. > >of buttons (Return and Cancel).  I would like all of the static text items
  1398. > >to be in the default font but two.  I want these two to be smaller size and
  1399. > >a different font.  How do I go about changing the font for just these two
  1400. > >items. [ ... ]
  1401. > Look into using an 'ictb' resource. I _believe_ it lets you set the font
  1402. > for individual dialog items (could be wrong though). They are documented
  1403. > in Inside Macintosh: Macintosh Toolbox Essentials.
  1404. > --Chris
  1405.  
  1406. The best way to create 'ictb' resources is with the resource editor
  1407. Resorceror from Mathemaesthetics. It provides a visual editor for creating
  1408. dialogs that lets you specify font, typeface (plain/bold/italic, etc.) and
  1409. color for dialog text items and colors for controls, and a "Try Out"
  1410. option that runs the dialog as if your code were displaying it, so you can
  1411. click on buttons, radio and checkboxes, popup menus etc. to see how it
  1412. appears to the user.
  1413.  
  1414. --
  1415. Steve Caine
  1416.  
  1417. +++++++++++++++++++++++++++
  1418.  
  1419. >From hawkeye@saturn.apana.org.au (Ross Mallett)
  1420. Date: Thu, 07 Sep 1995 01:17:01 +1200
  1421. Organization: The Lamb and Flag
  1422.  
  1423. In article <winterp.809104095@spot.Colorado.EDU>,
  1424. winterp@spot.Colorado.EDU (WINTER  PAUL RUDOLPH) wrote:
  1425.  
  1426. > I would like to open a dialog box with only static text items and a couple
  1427. > of buttons (Return and Cancel).  I would like all of the static text items
  1428. > to be in the default font but two.  I want these two to be smaller size and
  1429. > a different font.  How do I go about changing the font for just these two
  1430. > items?  I have been mucking around with calls to GetFontNum and then doing
  1431. > a call to TextFont(newfontnum), but all that does is change the font that
  1432. > is used in window titles on the desktop.  I have been checking the system
  1433. > and application fonts with GetSysFont and GetAppFont both before and after
  1434. > my calls to TextFont, but I've noticed no changes in these values from before
  1435. > the call to after the call.
  1436. > Obviously, I'm overlooking something here, as I have seen programs that do
  1437. > this.  Could someone point me in the right direction?  Also, could someone
  1438. > explain to me what TextFont is supposed to do?
  1439. TextFont resets the current grafPort's font to the given font number. My
  1440. guess is that your dialog was not the current grafPort when you called
  1441. TextFont.
  1442.  
  1443. Even if it was, this would not solve your problem really, because you
  1444. don't want all the items in your dialog in that font, only two of them. 
  1445.  
  1446. I would suggest using userItems in the dialog to draw the text the way you
  1447. want. The routine would look something like this (NB: the dialog manager
  1448. would have already called SetPort for you):
  1449.  
  1450. pascal void MyDraw(DialogPtr theDialog, short theItem) 
  1451.  
  1452.    {
  1453.    short    itemType;
  1454.    Rect     itemRect;
  1455.    Handle   itemHandle;
  1456.    
  1457.    GetDItem(theDialog,theItem,&itemType,&itemHandle,&itemRect);
  1458.    TextFont(monaco);
  1459.    TextSize((short) 9);
  1460.    TextBox(itemText,(long) strlen(itemText), &itemRect, teJustRight);
  1461.    }
  1462.    
  1463. You have to install a userItem before you show the dialog. eg.
  1464.  
  1465. void DoMyDialog()
  1466.  
  1467.    {
  1468.    DialogPtr myDialog;
  1469.    short     itemType;
  1470.    short     itemHit;
  1471.    Rect      itemRect;
  1472.    Handle    itemHandle;
  1473.  
  1474.    myDialog = GetNewDialog(myDialogID,NULL, (WindowPtr) -1); /* Invisible!! */
  1475.    GetDItem(myDialog,2,&itemType,&itemHandle,&itemRect);
  1476.    SetDItem(myDialog,2,itemType,(Handle) MyDraw,&itemRect);
  1477.    ShowWindow(myDialog); /* NOW make it visible */
  1478.    do modalDialog(NULL,&itemHit) while(itemHit != ok);
  1479.    } 
  1480.  
  1481. All this information about userItems (and more) can be found in Technical
  1482. Note #34.
  1483.  
  1484. If there's an easier way *I'd* like to know about it.
  1485.  
  1486. +++++++++++++++++++++++++++
  1487.  
  1488. >From resorcerer@aol.com (Resorcerer)
  1489. Date: 7 Sep 1995 12:18:07 -0400
  1490. Organization: America Online, Inc. (1-800-827-6364)
  1491.  
  1492. >>If there's an easier way *I'd* like to know about it.
  1493.  
  1494. The Dialog Manager already supports separate text styles and colors
  1495. for individual dialog items.  You have to create an 'ictb' resource with
  1496. entries for the corresponding dialog items to which you want to give
  1497. custom styles.
  1498.  
  1499. Resorcerer lets you do this easily and directly within its Dialog
  1500. Editor.  Just select the two items that you want to appear in
  1501. a different font and choose a menu command to bring up the
  1502. styles and colors dialog.
  1503.  
  1504. There are three drawbacks to using the 'ictb' resource method.
  1505. The first is that it won't work on any machine that doesn't
  1506. have Color Quickdraw installed.  This isn't that big a deal
  1507. anymore.  Another problem is that AppendDITL and other
  1508. item list routines introduced in System 7 don't know about
  1509. 'ictb's, so their use can get the Dialog Manager confused as
  1510. to which entry in the 'ictb' belongs to which item.  If you're
  1511. not using these routines, it shouldn't be a problem.  A third
  1512. drawback is if you use a wierd text font, you can't
  1513. be guaranteed that the same font will be on your user's
  1514. machine.  Most of the time this isn't a problem, since people
  1515. typically use custom text styles to draw text in a "small
  1516. system font", such as Geneva 9 (bold).
  1517.  
  1518. If you don't want to use the 'ictb' method, then the next
  1519. best method IMO is to create a 'PICT' the displays precisely
  1520. the text in the font you want.  Then create a Picture dialog
  1521. item that refers to it.  That way, you don't have to worry about
  1522. whether your user has the font installed or not, yet your
  1523. application is still able to be localized with a resource editor.
  1524. This only works if the 'PICT' is a true pixmap screen-copy,
  1525. as opposed to the kind that has the text and font information
  1526. embedded in it (Resorcerer let's you create both 'PICT' types).
  1527.  
  1528. The install-a-user-item-draw-routine method would be my
  1529. last choice, since it is the least flexible.
  1530.  
  1531. Doug McKenna
  1532. Mathemaesthetics, Inc.
  1533. Developers of Resorcerer
  1534.  
  1535. +++++++++++++++++++++++++++
  1536.  
  1537. >From cwatson@cam.org (Chris Watson)
  1538. Date: Sat, 09 Sep 1995 01:51:25 -0400
  1539. Organization: Communications Accessibles Montreal, Quebec Canada
  1540.  
  1541. In article <hawkeye-0709950117020001@202.12.90.8>,
  1542. hawkeye@saturn.apana.org.au (Ross Mallett) wrote:
  1543.  
  1544. > If there's an easier way *I'd* like to know about it.
  1545.  
  1546. I think the easiest way to change the static text fonts in a dialogue are
  1547. to include an 'ictb' resource for that dialogue (I think you'll also need
  1548. an 'dctb' resource)  Some programs, not ResEdit, have dialogue editors
  1549. that allow you to change the font very easily.... All the resources are
  1550. created for you... Resorceror and AppMaker can both do this, for example.
  1551.  
  1552. ========================================================================
  1553.   C C      |                   |                                       |
  1554.   | |      | Chris Watson      |   "Huked on phoniks wurks fer me!"    |
  1555. H-C-C-O-H  | cwatson@cam.org   |       - American television           |
  1556.   | |      | Montreal, Canada  |                                       |
  1557.   C C      |                   |                                       |
  1558. ========================================================================
  1559.  
  1560. ---------------------------
  1561.  
  1562. End of C.S.M.P. Digest
  1563. **********************
  1564.